package model;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;



public class ListaDeReproducao {
	private List<Musica> playList;
	private String nome;
	
	public ListaDeReproducao(String nome){
		this.playList = new ArrayList<Musica>();
		this.nome = nome;
	}
	
	public void addMusica(Musica musica) throws Exception{
		if(playList.contains(musica)){
			throw new Exception("Esta musica ja existe na playList.");
		}
		playList.add(musica);
	}
	
	public void removeMusica(Musica musica){
		playList.remove(musica);
	}
	
	public void removeMusicaPeloTitulo(String titulo) throws Exception{
		Musica musica = pesquisaMusicaPeloTitulo(titulo);
		removeMusica(musica);
	}
	
	public Musica pesquisaMusicaPeloTitulo(String titulo) throws Exception{
		Iterator <Musica> iterador = playList.iterator();
		while (iterador.hasNext()){
			Musica musica = iterador.next();
			if (titulo.equals(musica.getTitulo())){
				return musica;
			}
		} throw new Exception("Essa musica nao encontra-se atualmente cadastrada");
		
	}
	
	public Musica pesquisaMusicaPeloIndice(int indice) throws Exception{
		try {
			Musica musica = playList.get(indice);
			return musica;
		} catch (Exception ex){
			throw new Exception(ex.getMessage());
		}
			
	}
	
	public String getNome(){
		return nome;
	}
	
	public void setNome(String novoNome){
		nome = novoNome;
	}

	public List<Musica> getPlayList() {
		return playList;
	}
	
	public int numDeMusicas(){
		return playList.size();
	}
	
}

